diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index f77b466..e8c4a82 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -51,7 +51,7 @@
 	var $_trans_failure	= FALSE; // Used with transactions to determine if a rollback should occur
 	var $cache_on		= FALSE;
 	var $cachedir		= '';
-	var $cache_autodel	= TRUE;
+	var $cache_autodel	= FALSE;
 	var $CACHE; // The cache class object
 
 
@@ -889,7 +889,21 @@
 			return call_user_func_array($function, $args); 
 		}
 	}
-	
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Set Cache Directory Path
+	 *
+	 * @access	public
+	 * @param	string	the path to the cache directory
+	 * @return	void
+	 */		
+	function cache_set_path($path = '')
+	{
+		$this->cachedir = $path;
+	}
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -915,32 +929,41 @@
 	{
 		return $this->cache_on = FALSE;
 	}
-
-	// --------------------------------------------------------------------
-
-	/**
-	 * Set the cache "auto-delete" value
-	 *
-	 * @access	public
-	 * @return	void
-	 */		
-	function cache_autodelete($val = TRUE)
-	{
-		$this->cache_autodel = ( ! is_bool($val)) ? TRUE : $val;
-	}
 	
+
 	// --------------------------------------------------------------------
 
 	/**
-	 * Set Cache Directory Path
+	 * Delete the cache files associated with a particular URI
 	 *
 	 * @access	public
-	 * @param	string	the path to the cache directory
 	 * @return	void
 	 */		
-	function cache_set_path($path = '')
+	function cache_delete()
 	{
-		$this->cachedir = $path;
+		if ( ! $this->_cache_init())
+		{
+			return FALSE;
+		}
+		return $this->CACHE->delete();
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Delete All cache files
+	 *
+	 * @access	public
+	 * @return	void
+	 */		
+	function cache_delete_all()
+	{
+		if ( ! $this->_cache_init())
+		{
+			return FALSE;
+		}
+
+		return $this->CACHE->delete_all();
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/libraries/Validation.php b/system/libraries/Validation.php
index 7db67a3..ff59708 100644
--- a/system/libraries/Validation.php
+++ b/system/libraries/Validation.php
@@ -65,18 +65,25 @@
 	function set_fields($data = '', $field = '')
 	{	
 		if ($data == '')
-			return;
-	
-		if ( ! is_array($data))
 		{
-			if ($field == '')
-				return;
-			
-			$data = array($data => $field);
+			if (count($this->_fields) == 0)
+			{
+				return FALSE;
+			}
 		}
-	
-		$this->_fields = $data;
-	
+		else
+		{
+			if ( ! is_array($data))
+			{
+				$data = array($data => $field);
+			}
+			
+			if (count($data) > 0)
+			{
+				$this->_fields = $data;
+			}
+		}		
+			
 		foreach($this->_fields as $key => $val)
 		{		
 			$this->$key = ( ! isset($_POST[$key]) OR is_array($_POST[$key])) ? '' : $this->prep_for_form($_POST[$key]);
diff --git a/user_guide/database/utilities.html b/user_guide/database/utilities.html
index cf42aae..fcfc249 100644
--- a/user_guide/database/utilities.html
+++ b/user_guide/database/utilities.html
@@ -227,7 +227,7 @@
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'root'&nbsp;&nbsp;&nbsp; => 'root',<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'element' => 'element', <br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'newline' => "\n", <br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';tab'&nbsp;&nbsp;&nbsp;&nbsp;=> "\t"<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'tab'&nbsp;&nbsp;&nbsp;&nbsp;=> "\t"<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
 <br />
 echo $this->dbutil->xml_from_result($query, $config);
@@ -252,7 +252,7 @@
 <dfn>// Load the DB utility class</dfn><br />
 $this->load->dbutil();<br /><br />
 
-<dfn>// Backup your entire database</dfn><br />
+<dfn>// Backup your entire database and assign it to a variable</dfn><br />
 $backup =& $this->dbutil->backup();
 
 <br /><br />
diff --git a/user_guide/general/changelog.html b/user_guide/general/changelog.html
index 1e7b322..22f2205 100644
--- a/user_guide/general/changelog.html
+++ b/user_guide/general/changelog.html
@@ -80,13 +80,14 @@
 <li>Added <a href="../database/queries.html">simple_query()</a> function to the database classes</li>
 <li>Added <a href="../helpers/date_helper.html">standard_date()</a> function to the Date Helper.</li>
 <li>Added <a href="../database/results.html">$query->free_result()</a> to database class.</li>
-<li>Added <a href="../database/fields">$query->field_names()</a> function to database class</li>
-<li>Added <a href="../database/helpers">$this->db->platform()</a> function</li>
+<li>Added <a href="../database/fields.html">$query->field_names()</a> function to database class</li>
+<li>Added <a href="../database/helpers.html">$this->db->platform()</a> function</li>
 <li>Added two more protocols to the URI handler to make it more reliable when the $config['uri_protocol'] item is set to AUTO.</li>
 <li>Added "is_numeric" to validation, which uses the native PHP is_numeric function.</li>
 <li>Updated the DB Result class to return an empty array when $query->result() doesn't produce a result.</li>
 <li>Updated the <dfn>input->cookie()</dfn> and <dfn>input->post()</dfn> functions in <a href="../libraries/input.html">Input Class</a> to permit arrays contained cookies that are arrays to be run through the XSS filter.</li>
 <li>Fixed a bug in the Email class related to SMTP Helo data.</li>
+<li>Fixed a bug in the validation class.</li>
 <li><strong>Deprecated "init" folder</strong>.  Initialization happens automatically now.  <a href="creating_libraries.html">Please see documentation</a>.</li>
 <li><strong>Deprecated</strong> $this->db->field_names()  USE  $this->db->list_fields()</li>
 <li><strong>Deprecated</strong> $this->load->library('unit_test').  USE $this->load->library('unit')</li>
diff --git a/user_guide/helpers/user_agent_helper.html b/user_guide/helpers/user_agent_helper.html
index 171f9ae..617c326 100644
--- a/user_guide/helpers/user_agent_helper.html
+++ b/user_guide/helpers/user_agent_helper.html
@@ -63,7 +63,7 @@
 
 <h1>User Agent Helper</h1>
 
-<p>The User Agent Helper file helps you work with browser generated data..</p>
+<p>The User Agent Helper file helps you work with browser generated data.</p>
 
 
 <h2>Loading this Helper</h2>
